The present invention relates to systems and methods for executing and debugging multiple codes in a multi-architecture environment and, more particularly, to improved multi-code execution systems and methods that operate with better flexibility and provide improved execution and debugging for new program codes developed for a new architecture before the hardware and operating system for the new architecture are available.
A large amount of development effort and monetary investment is required to design a new computer hardware architecture, develop a commercial computer product implementing the new architecture, and develop system and user software for use on the new computer product. As the time to develop new computer hardware and software increases, both the product investment cost and the product marketability may be adversely affected. Thus, greater commercial product development time usually requires more monetary investment by the manufacturer and its suppliers and users and, further, runs greater risk that anticipated market needs and other market conditions will have eroded before the new product is commercially available.
In any case, for economic and other reasons it is desirable for and beneficial to suppliers, manufacturers and users that the total hardware/software development time cycle be shortened. Significant development cycle shortening is achieved by a new process set forth in the cross-referenced application Ser. No. 07/665,886, now abandoned, in which hardware and software development processes can be run substantially concurrently rather than sequentially. The present invention is directed to system structure and processes that help shorten such development cycle shortening.
Some prior art technology has been available to allow limited development of software and hardware in parallel activity for a new computer hardware architecture. For example, simulators have been employed to emulate new hardware on existing hardware and thereby provide a limited working environment for software engineers who are responsible for writing new programs or migrating other programs to the new environment.
The relevant prior art technology, however, has limited utility because it addresses only the needs of developers of low level software and the operating system itself. No mechanism is provided for test execution of user level software which requires lower level and support software to be operable in the simulated environment or on the real hardware. In particular, an operating system and library support routines for the new architecture are normally not available as operating components of the simulator, thereby making the execution of user level software for the new architecture impossible. The operating system and higher layered software itself can be simulated but this alternative is very costly and complicated.
The present invention is directed to resolving these problems by providing a total architecture environment within which code for existing hardware and new user level and other code for new hardware can be executed to enable new code testing and debugging before the new hardware and an operating system and support software for it are available. Basically, a system or method implemented in accordance with the invention provides multiple code execution in a multi-architecture environment which may include an existing hardware environment and a simulation environment that employs the underlying operating system and support software employed in the existing hardware environment.